Cocos2d-x 建置環境 for Android on Windows
我的環境是Windows 7 64bits CPU i5 M480
需先下載
- apache ant Download
- Android Development Tools Download
- Android ndk Download
- Cocos2d-x Download
- python 2.7 version not 3.6 version Download
安裝 python 2.7
安裝python2.7後->按下下方工具列的開始->對電腦按右鍵->內容->進階系統設定->環境變數->系統變數中的PATH->編輯->在變數值中加入你所安裝python2.7的位置->最後加上,和其他數值分開※我的python位置放在C:\Python27,所以在變數值中加入C:\Python27;
Setup Cocos2d-x
把下載的另外三個檔案放入你指定的資料夾中※我是放在”D:\cocos2d”中,並解壓縮
使用Command Prompt並前往該資料夾,打入setup.py
|
|
他會要求輸入其他三個的根目錄,依序是
- NDK_ROOT ※我的目錄為D:\Cocos2d\android-ndk-r9d
- Android_SDK_ROOT ※我的目錄為D:\Cocos2d\adt-bundle-windows-x86_64-20140702\sdk
- ANT_ROOT ※我的目錄為D:\Cocos2d\apache-ant-1.9.4\bin 記得是ant資料夾裡面bin的路徑
基本上Cocos2d-x這樣就設置完成了
創建新的Project
在Cocos2d裡面鍵入
|
|
在D:\Cocos2d\Project內建立testproject這個Project,
package name為org.blake31113.testproject,
language name 為 C++
destination 為 D:\Cocos2d\Project
參照
|
|
Build Project
進入Project中的proj.android並鍵入
|
|
編譯可能會有段時間,
編譯完後,Project就建立並編譯&建置完了
將Project輸出apk並執行
- 打開剛剛下載的Android Development Tools(ADT)中的eclipse(in D:\Cocos2d\adt-bundle-windows-x86_64-20140702\eclipse)
- 按File->import->Android->Existing Android Code Into Workspace
- 按Browse->選擇Project資料夾(D:\Cocos2d\Project\testproject)->先按Deselect All->選擇cocos2d\cocos\platform\android\java和proj.android->Finish
(cocos2d\cocos\platform\android\java是cocos2d的library,之後輸出其他Project可以不用再import) - 此時Project的圖示會有紅色驚嘆號,代表還有問題,eclipse會呼叫專案的build_native.py,再Compile Project一次
- 成功Compile完後,libcocos2dx和project的紅色驚嘆號和叉叉都會消失
- 檢查一下project內android的版本,如果是4.4W的話要換成4.4.2(API19),否則會無法輸出(4.4W是給Android Wear的API)
(要換成4.4.2版:在Eclipse工具列上Windows->SDK Manager,選擇4.4.2 install,install完後,對Project按右鍵->Properties->Android->選擇4.4.2->Apply->OK) - 檢查一下project內是否有Android Dependencies,有的話也會無法成功輸出,需要對Project按右鍵->Build_Path->Configure->Libraries->點選Android Dependencies->Remove->OK
(Ecilpse在Android4.0之後,如果Project是Android的Application,會自動加入Android Dependency) - 將手機或平板插上,並將USB偵錯開啟
- 對Project按右鍵->Run as Android Application,選擇該裝置就OK了
[
使用Genymotion做模擬,卻不能work,貌似因為Compile是透過armabi(ARM Application Binary Interface)而不是x86的,所以無法work
無法使用Genymotion的詳細原因與解法